﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Model
{
    public class Hold
    {
        //Attributter
        private int holdId;
        private Ridningstype type;
        private DateTime ugedag;
        private DateTime startTid;
        private DateTime slutTid;
        private Person ridelære;
        private List<Person> staldpiger;
        private List<Person> medlemmer;
        private int maksAntal;

        private Holdpriser holdpris;

        //Constructor
        public Hold(int holdId, Ridningstype type, DateTime ugedag, DateTime startTid, DateTime slutTid, Person ridelære, int maksAntal, Holdpriser holdpris)
        {
            this.holdId = holdId;
            this.type = type;
            this.ugedag = ugedag;
            this.startTid = startTid;
            this.slutTid = slutTid;
            this.ridelære = ridelære;
            staldpiger = new List<Person>();
            medlemmer = new List<Person>();
            this.maksAntal = maksAntal;

            this.holdpris = holdpris;
        }
        
        //Metoder
        //Staldpige metoder
        public Person HentStaldpiger()
        {
            foreach(Person sp in staldpiger)
            {
                return sp;
            }
            return null;
        }

        public void TilknytStaldpige(Person staldpige)
        {
            staldpiger.Add(staldpige);
        }

        public void FjernStaldpige(Person staldpige)
        { 
            staldpiger.Remove(staldpige); 
        }

        //Medlem metoder
        public Person HentMedlemmer()
        {
            foreach (Person m in medlemmer)
            {
                return m;
            }
            return null;
        }

        public void TilknytMedlem(Person medlem)
        {
            medlemmer.Add(medlem);
        }

        public void FjernMedlem(Person medlem)
        {
            medlemmer.Remove(medlem);
        }

        //Properties
        public int HoldId
        {
            get { return holdId; }
            set { holdId = value; }
        }

        internal Ridningstype Type
        {
            get { return type; }
            set { type = value; }
        }

        public DateTime Ugedag
        {
            get { return ugedag; }
            set { ugedag = value; }
        }

        public DateTime StartTid
        {
            get { return startTid; }
            set { startTid = value; }
        }

        public DateTime SlutTid
        {
            get { return slutTid; }
            set { slutTid = value; }
        }

        internal Person Ridelære
        {
            get { return ridelære; }
            set { ridelære = value; }
        }

        //internal List<Person> Staldpiger
        //{
        //    get { return staldpiger; }
        //    set { staldpiger = value; }
        //}

        ////internal List<Person> Medlemmer
        //{
        //    get { return medlemmer; }
        //    set { medlemmer = value; }
        //}

        public int MaksAntal
        {
            get { return maksAntal; }
            set { maksAntal = value; }
        }

        internal Holdpriser Holdpris
        {
            get { return holdpris; }
            set { holdpris = value; }
        }
    }
}
